Disc drive and other storage subsystems, including flash memory devices and removable storage devices, typically have a processor (sometimes called a microprocessor) in their built-in electronics. The processor can be used to hide computations as well as stored data.
SmartCards are a type of storage device that is commonly limited to single security sessions and to simple sequences of operations. As used herein, the term “SmartCard” refers to card with updatable memory and often with an embedded microprocessor. A smartcard may be used in a variety of ways. One use is to initialize the card with a monetary value for use in financial transactions, such as paying for telephone calls or for conducting Internet transactions. With respect to storage devices, SmartCards can also be utilized as a physical access key for unlocking a storage device.
A storage device-based implementation can potentially have a large number of security partitions and can handle multiple, simultaneous security sessions to those security partitions. As used herein, the term “security partition” refers to a data area defined on a storage medium of the storage device to which access is strictly controlled. A “security session” is a secure transaction using, for example, encryption, tunneling, or secure socket layer type communication protocols, between the security partition and an entity.
Though the storage device typically has more capabilities than a SmartCard, the storage device is still limited by the command set that can be sent from a host machine to the storage device. In one sense, if the host transmits only one command at a time to a storage device (in a manner similar to a typical SmartCard session), the capabilities of the storage device are not fully realized. Additionally, latencies associated with access time (the time interval from a start of a memory read until the insertion of the memory completion signal) and cycle time (the minimum time interval from the start of a read or write operation to the start of the next memory operation) are made worse. Typically, the cycle time may be slightly longer than the access time due to various hardware housekeeping tasks that are performed by the memory.
Some memory devices read or write values not as individual words, but in blocks of multiple words. In these memory systems, there is a latency in accessing the first word of the block that is different from the bandwidth (the rate at which the words can be transmitted in words per second) once the first word of the block is available.
Because the latency in accessing the first word in a block is cumulative with the rate at which words can be transferred, it is desirable to reduce first-word latencies in order to minimize delays. Such latencies typically occur in communications between a host system and a storage subsystem.
There is an ongoing need for improved communications between host systems and the storage subsystem. More particularly, there is an on-going need for improving communications, including commands and transactions directed to particular security sessions, between the host and the storage subsystem that hosts the transactions.